#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QPushButton>


// 构造函数
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 示例一：在一个类中自定义信号和槽
    // // 将信号与槽关联起来
    // connect(this,&Widget::MySignal, this, &Widget::MySlot);
    // // 触发信号
    // emit MySignal();

//    // 示例二：信号和槽定义在不同类中
//    Teacher* teacherPtr = new Teacher(this);
//    Student* studentPtr = new Student(this);

//    connect(teacherPtr, &Teacher::MySignals, studentPtr, &Student::MySlot);
//    emit teacherPtr->MySignals();

    // 示例三：点击button触发信号
    Teacher* teacherPtr = new Teacher(this);
    Student* studentPtr = new Student(this);
    QPushButton* qpb = new QPushButton("上课了！！！", this);
    qpb->resize(100, 100);
    // qpb->setText("点击发射信号");
    qpb->move(100, 100);

    connect(qpb, &QPushButton::clicked, teacherPtr, &Teacher::MySignal);
    connect(teacherPtr, &Teacher::MySignal, studentPtr, &Student::MySlot);
}

// 析构函数
Widget::~Widget()
{
    delete ui;
}

// 槽函数
void Widget::MySlot()
{
    qDebug() << "槽函数";
    qDebug() << "被调用";
}

void Widget::on_pushButton_clicked()
{

}
